FIFO memories are often used in communications, data processing applications, computing, etc. and may be shared between multiple applications or data streams where data may be “bursty” in nature and temporary storage of this data is needed. Fixed sized FIFOs, statically allocated FIFO memory sizes, and/or evenly divided FIFO memory sizes may be too small in size to store enough data for an application or a data stream leading to loss of data. This may present a problem. If FIFOs are large enough to store enough data, they may be oversized which is wasteful of resources, power, etc. This may present a problem. For example, in communications large traffic burstiness may result in packet loss due to buffer overflow if buffer size is statically configured. This may present a problem.